/*
 * 文件名：CrossingService.java	 
 * 时     间：下午7:50:18
 * 作     者：Administrator       
 * 版     权： 2012-2022 湖南智软网络科技, 公司保留所有权利.
 * 联     系：http://www.073586.com/
 */
package com.local.service.face;

import java.util.List;

import com.local.entity.vo.StationAndCrossionVo;
import com.local.entity.vo.TakePhotoParamVo;
import com.local.model.Crossing;
import com.local.model.CrossingToEquipment;
import com.local.model.CrossingToStation;
import com.local.model.LocalEquipment;
import com.local.model.LocalStation;
import com.local.page.CrossingPageInfo;
import com.qianhai.common.exception.BaseException;
import com.qianhai.common.service.face.BaseService;


/**
 * 类描述:管理路口信息：路口与岗亭、设备关系
 * 
 * * @ClassName: CrossingService
 * 
 * @author Administrator
 * @date 2015年10月6日 下午7:50:18
 */
public interface CrossingService extends BaseService<Object, Object, String>
{
	/**
	 * 
	 * 方法描述：   添加路口
	 * 
	 * @Title: addCrossin
	 * @param @param crossing
	 * @param @return
	 * @param @throws BaseException
	 * @return Integer
	 * @user Administrator 2015年10月6日
	 * @throws
	 */
	public Integer addCrossin(Crossing crossing) throws BaseException;
	
	/**
	 * 
	 * 方法描述：  修改路口信息
	 * @Title: editCrossinById 
	 * @param @param crossing
	 * @param @return
	 * @param @throws BaseException
	 * @return Integer
	 * @user Administrator
	 * 2015年10月6日
	 * @throws
	 */
	public Integer editCrossinById(Crossing crossing) throws BaseException;
	
	/**
	 * 
	 * 方法描述：  通过ID查询
	 * @Title: getCrossinByid 
	 * @param @param uuid
	 * @param @return
	 * @param @throws BaseException
	 * @return Crossing
	 * @user Administrator
	 * 2015年10月6日
	 * @throws
	 */
	public Crossing getCrossinByid(String uuid) ;
	
	/**
	 * 
	 * 方法描述： 通过id删除
	 * @Title: delCrossinById 
	 * @param @param uuid
	 * @param @return
	 * @param @throws BaseException
	 * @return Integer
	 * @user Administrator
	 * 2015年10月6日
	 * @throws
	 */
	public Integer delCrossinById(String uuid) throws BaseException;
	
	/**
	 * 
	 * 方法描述： 查询列表
	 * @Title: queryCrossinByPage 
	 * @param @param page
	 * @return void
	 * @user Administrator
	 * 2015年10月6日
	 * @throws
	 */
	public void queryCrossinByPage(CrossingPageInfo page);
	
	/**
	 * 
	 * 方法描述：  建立连接
	 * @Title: createVidoConnect 
	 * @param @param crossinId
	 * @param @return
	 * @param @throws BaseException
	 * @return Integer
	 * @user Administrator
	 * 2015年10月6日
	 * @throws
	 */
	public Integer createVidoConnect(String crossinId) throws BaseException;
	
	/**
	 * 
	 * 方法描述：  通过岗亭ID查询路口
	 * @Title: queryCrossinBySationId 
	 * @param @param sationId
	 * @param @return
	 * @return List<Crossing>
	 * @user Administrator
	 * 2015年10月6日
	 * @throws
	 */
	public List<Crossing> queryCrossinBySationId(String sationId);
	
	/**
	 * 
	 * 方法描述：    通过路口id查询设备列表
	 * @Title: queryEquimentByCrossionId 
	 * @param @param crssionId
	 * @param @return
	 * @return List<LocalEquipment>
	 * @user Administrator
	 * 2015年10月6日
	 * @throws
	 */
	public List<LocalEquipment> queryEquimentByCrossionId(String crssionId);
	
	/**
	 * 
	 * 方法描述：获取没有被绑定的设备列表
	 * @Title: queryEquimentNotBinByCrossionId 
	 * @param @param crssionId
	 * @param @return
	 * @return List<LocalEquipment>
	 * @user lyf
	 * 2015年10月7日
	 * @throws
	 */
	public List<LocalEquipment> queryNotBindedEquimentList(String uuid);
	
	/**
	 * 
	 * 方法描述：  岗亭分配路口
	 * @Title: stationAssignCrosisin 
	 * @param @param list
	 * @param @return
	 * @param @throws BaseException
	 * @return Integer
	 * @user Administrator
	 * 2015年10月6日
	 * @throws
	 */
	public Integer stationAssignCrossion(List<CrossingToStation> list) throws BaseException;
	
	public void stationAndCrossion(StationAndCrossionVo sac) throws BaseException;
	
	/**
	 * 
	 * 方法描述： 路口指派设备
	 * @Title: crossionAssignEquipment 
	 * @param @param list
	 * @param @return
	 * @param @throws BaseException
	 * @return Integer
	 * @user Administrator
	 * 2015年10月6日
	 * @throws
	 */
	public Integer crossionAssignEquipment(java.util.List<CrossingToEquipment> list) throws BaseException;
	
	
	/**
	 * 
	 * 方法描述：  通过设备名获取路口列表
	 * @Title: querySationByEquimentNo 
	 * @param @param equimentNo
	 * @param @return
	 * @return List<LocalStation>
	 * @user lyf
	 * 2015年10月7日
	 * @throws
	 */
	public List<Crossing> queryCrossingByEquimentNo(String equimentNo);
	
	
	/**
	 * 
	 * 
	 * 方法描述：    查询路口处于哪些岗亭
	 * @Title: queryStaionsByCrosList 
	 * @param @param list
	 * @param @return
	 * @return List<LocalStation>
	 * @user lyf
	 * 2015年10月7日
	 * @throws
	 */
	public List<LocalStation> queryStaionsByCrosList(List<Crossing> list);
	
	/**
	 * 
	 * 方法描述： 通过路口ID查找岗亭
	 * @Title: findStationByCrosId 
	 * @param @param crossingId
	 * @param @return
	 * @return LocalStation
	 * @user liyf
	 * 2016年8月10日
	 * @throws
	 */
	public LocalStation findStationByCrosId(String crossingId);
	
	/**
	 * 
	 * 方法描述：  开闸
	 * @Title: openGATE 
	 * @param @param crossinId
	 * @return void
	 * @user Administrator
	 * 2015年10月6日
	 * @throws
	 */
	public void openGATE(String crossinId,String stationId) ;
	
	/**
	 * 
	 * 方法描述：  指定设备抓拍.
	 * @Title: takePhoto 
	 * @param @param equimentId
	 * @return void
	 * @user lyf
	 * 2015年10月20日
	 * @throws
	 */
	public void takePhoto(TakePhotoParamVo vo);
}
